{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 上次课导入的莫尔斯电码对照表数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "morse_dict = {\n",
    "    'A': '·-',\n",
    "    'B': '-···',\n",
    "    'C': '-·-·',\n",
    "    'D': '-··',\n",
    "    'E': '·',\n",
    "    'F': '··-·',\n",
    "    'G': '--·',\n",
    "    'H': '····',\n",
    "    'I': '··',\n",
    "    'J': '·---',\n",
    "    'K': '-·-',\n",
    "    'L': '·-··',\n",
    "    'M': '--',\n",
    "    'N': '-·',\n",
    "    'O': '---',\n",
    "    'P': '·--·',\n",
    "    'Q': '--·-',\n",
    "    'R': '·-·',\n",
    "    'S': '···',\n",
    "    'T': '-',\n",
    "    'U': '··-',\n",
    "    'V': '···-',\n",
    "    'W': '·--',\n",
    "    'X': '-··-',\n",
    "    'Y': '-·--',\n",
    "    'Z': '--··',\n",
    "    '1': '·----',\n",
    "    '2': '··---',\n",
    "    '3': '···--',\n",
    "    '4': '····-',\n",
    "    '5': '·····',\n",
    "    '6': '-····',\n",
    "    '7': '--···',\n",
    "    '8': '---··',\n",
    "    '9': '----·',\n",
    "    '0': '-----',\n",
    "    '.': '·-·-·-',\n",
    "    ':': '---···',\n",
    "    ',': '--··--',\n",
    "    ';': '-·-·-·',\n",
    "    '?': '··--··',\n",
    "    '=': '-···-',\n",
    "    \"'\": '·----·',\n",
    "    '/': '-··-·',\n",
    "    '!': '-·-·--',\n",
    "    '-': '-····-',\n",
    "    '_': '··--·-',\n",
    "    '\"': '·-··-·',\n",
    "    '(': '-·--·',\n",
    "    ')': '-·--·-',\n",
    "    '$': '···-··-',\n",
    "    '&': '·-···',\n",
    "    '@': '·--·-·',\n",
    "    '+': '·-·-·'\n",
    "}\n",
    "morse_dict_r = {\n",
    "    '·-': 'A',\n",
    "    '-···': 'B',\n",
    "    '-·-·': 'C',\n",
    "    '-··': 'D',\n",
    "    '·': 'E',\n",
    "    '··-·': 'F',\n",
    "    '--·': 'G',\n",
    "    '····': 'H',\n",
    "    '··': 'I',\n",
    "    '·---': 'J',\n",
    "    '-·-': 'K',\n",
    "    '·-··': 'L',\n",
    "    '--': 'M',\n",
    "    '-·': 'N',\n",
    "    '---': 'O',\n",
    "    '·--·': 'P',\n",
    "    '--·-': 'Q',\n",
    "    '·-·': 'R',\n",
    "    '···': 'S',\n",
    "    '-': 'T',\n",
    "    '··-': 'U',\n",
    "    '···-': 'V',\n",
    "    '·--': 'W',\n",
    "    '-··-': 'X',\n",
    "    '-·--': 'Y',\n",
    "    '--··': 'Z',\n",
    "    '·----': '1',\n",
    "    '··---': '2',\n",
    "    '···--': '3',\n",
    "    '····-': '4',\n",
    "    '·····': '5',\n",
    "    '-····': '6',\n",
    "    '--···': '7',\n",
    "    '---··': '8',\n",
    "    '----·': '9',\n",
    "    '-----': '0',\n",
    "    '·-·-·-': '.',\n",
    "    '---···': ':',\n",
    "    '--··--': ',',\n",
    "    '-·-·-·': ';',\n",
    "    '··--··': '?',\n",
    "    '-···-': '=',\n",
    "    '·----·': \"'\",\n",
    "    '-··-·': '/',\n",
    "    '-·-·--': '!',\n",
    "    '-····-': '-',\n",
    "    '··--·-': '_',\n",
    "    '·-··-·': '\"',\n",
    "    '-·--·': '(',\n",
    "    '-·--·-': ')',\n",
    "    '···-··-': '$',\n",
    "    '·-···': '&',\n",
    "    '·--·-·': '@',\n",
    "    '·-·-·': '+'\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 利用字符串追加实现的编码函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def morse_encode(src_text):\n",
    "    result = ''\n",
    "    src_text = src_text.upper()\n",
    "    for single_char in src_text:\n",
    "        result += morse_dict.get(single_char, '\\\\') + ' '\n",
    "    return result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 利用''.join()字符串拼接实现的编码函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def morse_encode(src_text):\n",
    "    result = []\n",
    "    src_text = src_text.upper()\n",
    "    for single_char in src_text:\n",
    "        result.append(morse_dict.get(single_char, '\\\\') + ' ')\n",
    "    return ''.join(result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 用列表推导实现的编码函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def morse_encode(src_text):\n",
    "    return ''.join([morse_dict.get(\n",
    "        single_char, '\\\\') + ' ' for single_char in src_text.upper()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'·· \\\\ ·-·· --- ···- · \\\\ -·-- --- ··- '"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "morse_encode('I love you')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 解码函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def morse_decode(morse_txt):\n",
    "    result = ''\n",
    "    for seg in morse_txt.split():\n",
    "        result += morse_dict_r.get(seg, ' ')\n",
    "    return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'I LOVE YOU'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "morse_decode('·· \\\\ ·-·· --- ···- · \\\\ -·-- --- ··- ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 莫尔斯编解码类实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "class morseCodec:\n",
    "    \"\"\"Morse Encoding and Decoding\n",
    "    \"\"\"\n",
    "    def __init__(self):\n",
    "        self.morse_dict = {\n",
    "            'A': '·-',\n",
    "            'B': '-···',\n",
    "            'C': '-·-·',\n",
    "            'D': '-··',\n",
    "            'E': '·',\n",
    "            'F': '··-·',\n",
    "            'G': '--·',\n",
    "            'H': '····',\n",
    "            'I': '··',\n",
    "            'J': '·---',\n",
    "            'K': '-·-',\n",
    "            'L': '·-··',\n",
    "            'M': '--',\n",
    "            'N': '-·',\n",
    "            'O': '---',\n",
    "            'P': '·--·',\n",
    "            'Q': '--·-',\n",
    "            'R': '·-·',\n",
    "            'S': '···',\n",
    "            'T': '-',\n",
    "            'U': '··-',\n",
    "            'V': '···-',\n",
    "            'W': '·--',\n",
    "            'X': '-··-',\n",
    "            'Y': '-·--',\n",
    "            'Z': '--··',\n",
    "            '1': '·----',\n",
    "            '2': '··---',\n",
    "            '3': '···--',\n",
    "            '4': '····-',\n",
    "            '5': '·····',\n",
    "            '6': '-····',\n",
    "            '7': '--···',\n",
    "            '8': '---··',\n",
    "            '9': '----·',\n",
    "            '0': '-----',\n",
    "            '.': '·-·-·-',\n",
    "            ':': '---···',\n",
    "            ',': '--··--',\n",
    "            ';': '-·-·-·',\n",
    "            '?': '··--··',\n",
    "            '=': '-···-',\n",
    "            \"'\": '·----·',\n",
    "            '/': '-··-·',\n",
    "            '!': '-·-·--',\n",
    "            '-': '-····-',\n",
    "            '_': '··--·-',\n",
    "            '\"': '·-··-·',\n",
    "            '(': '-·--·',\n",
    "            ')': '-·--·-',\n",
    "            '$': '···-··-',\n",
    "            '&': '·-···',\n",
    "            '@': '·--·-·',\n",
    "            '+': '·-·-·'\n",
    "        }\n",
    "        self.morse_dict_r = {\n",
    "            '·-': 'A',\n",
    "            '-···': 'B',\n",
    "            '-·-·': 'C',\n",
    "            '-··': 'D',\n",
    "            '·': 'E',\n",
    "            '··-·': 'F',\n",
    "            '--·': 'G',\n",
    "            '····': 'H',\n",
    "            '··': 'I',\n",
    "            '·---': 'J',\n",
    "            '-·-': 'K',\n",
    "            '·-··': 'L',\n",
    "            '--': 'M',\n",
    "            '-·': 'N',\n",
    "            '---': 'O',\n",
    "            '·--·': 'P',\n",
    "            '--·-': 'Q',\n",
    "            '·-·': 'R',\n",
    "            '···': 'S',\n",
    "            '-': 'T',\n",
    "            '··-': 'U',\n",
    "            '···-': 'V',\n",
    "            '·--': 'W',\n",
    "            '-··-': 'X',\n",
    "            '-·--': 'Y',\n",
    "            '--··': 'Z',\n",
    "            '·----': '1',\n",
    "            '··---': '2',\n",
    "            '···--': '3',\n",
    "            '····-': '4',\n",
    "            '·····': '5',\n",
    "            '-····': '6',\n",
    "            '--···': '7',\n",
    "            '---··': '8',\n",
    "            '----·': '9',\n",
    "            '-----': '0',\n",
    "            '·-·-·-': '.',\n",
    "            '---···': ':',\n",
    "            '--··--': ',',\n",
    "            '-·-·-·': ';',\n",
    "            '··--··': '?',\n",
    "            '-···-': '=',\n",
    "            '·----·': \"'\",\n",
    "            '-··-·': '/',\n",
    "            '-·-·--': '!',\n",
    "            '-····-': '-',\n",
    "            '··--·-': '_',\n",
    "            '·-··-·': '\"',\n",
    "            '-·--·': '(',\n",
    "            '-·--·-': ')',\n",
    "            '···-··-': '$',\n",
    "            '·-···': '&',\n",
    "            '·--·-·': '@',\n",
    "            '·-·-·': '+'\n",
    "        }\n",
    "        \n",
    "    def encode(self, src_text):\n",
    "        result = ''\n",
    "        src_text = src_text.upper()\n",
    "        for single_char in src_text:\n",
    "            result += self.morse_dict.get(single_char, '\\\\') + ' '\n",
    "        return result\n",
    "\n",
    "    def decode(self, morse_txt):\n",
    "        result = ''\n",
    "        for seg in morse_txt.split():\n",
    "            result += self.morse_dict_r.get(seg, ' ')\n",
    "        return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_morse = morseCodec()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'·· \\\\ ·-·· --- ···- · \\\\ -·-- --- ··- '"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_morse.encode('I love you')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'I LOVE YOU'"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_morse.decode('·· \\\\ ·-·· --- ···- · \\\\ -·-- --- ··- ')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 平滑莫尔斯编码编解码类(未完成)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "class smoothMorseCodec(morseCodec):\n",
    "    def encode(self, src_text):\n",
    "        result = ''\n",
    "        src_text = src_text.upper()\n",
    "        for single_char in src_text:\n",
    "            result += self.morse_dict.get(single_char, '\\\\')\n",
    "        return result\n",
    "    \n",
    "    def decode(self, morse_txt):\n",
    "        result = ''\n",
    "        for seg in morse_txt.split('\\\\'):\n",
    "            result += self.morse_dict_r.get(seg, ' ')\n",
    "        return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_smooth_morse = smoothMorseCodec()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'··\\\\·-··---···-·\\\\-·-----··-'"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_smooth_morse.encode('I love you')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'I  '"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_smooth_morse.decode('··\\\\·-··---···-·\\\\-·-----··-')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 递归方式实现平滑莫尔斯电码片段的解码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "max_moorse_len = max([len(k) for k in morse_dict_r])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_moorse_len"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "def guess_morse(morse_seg, cur_morse, cur_start, result):\n",
    "    for end in range(cur_start + 1, min(cur_start + max_moorse_len + 1, len(morse_seg) + 1)):\n",
    "        single_char = morse_dict_r.get(morse_seg[cur_start:end], None) #对切片尝试进行解码\n",
    "        if single_char:\n",
    "            if end == len(morse_seg):  #解码至串末尾递归结束\n",
    "                result.append(cur_morse + single_char)\n",
    "                break\n",
    "            else:\n",
    "                guess_morse(morse_seg, cur_morse + single_char, end, result) #递归解码剩余部分\n",
    "    if cur_start == 0:\n",
    "        return result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n"
     ]
    }
   ],
   "source": [
    "result = guess_morse('·-··---···-·', '', 0, [])\n",
    "print('LOVE' in result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['ETEETTTEEETE', 'ETEETTTEEEN', 'ETEETTTEEAE', 'ETEETTTEER', 'ETEETTTEITE', 'ETEETTTEIN', 'ETEETTTEUE', 'ETEETTTEF', 'ETEETTTIETE', 'ETEETTTIEN', 'ETEETTTIAE', 'ETEETTTIR', 'ETEETTTSTE', 'ETEETTTSN', 'ETEETTTVE', 'ETEETTNEETE', 'ETEETTNEEN', 'ETEETTNEAE', 'ETEETTNER', 'ETEETTNITE', 'ETEETTNIN', 'ETEETTNUE', 'ETEETTNF', 'ETEETTDETE', 'ETEETTDEN', 'ETEETTDAE', 'ETEETTDR', 'ETEETTBTE', 'ETEETTBN', 'ETEETT=E', 'ETEETMEEETE', 'ETEETMEEEN', 'ETEETMEEAE', 'ETEETMEER', 'ETEETMEITE', 'ETEETMEIN', 'ETEETMEUE', 'ETEETMEF', 'ETEETMIETE', 'ETEETMIEN', 'ETEETMIAE', 'ETEETMIR', 'ETEETMSTE', 'ETEETMSN', 'ETEETMVE', 'ETEETGEETE', 'ETEETGEEN', 'ETEETGEAE', 'ETEETGER', 'ETEETGITE', 'ETEETGIN', 'ETEETGUE', 'ETEETGF', 'ETEETZETE', 'ETEETZEN', 'ETEETZAE', 'ETEETZR', 'ETEET7TE', 'ETEET7N', 'ETEEMTEEETE', 'ETEEMTEEEN', 'ETEEMTEEAE', 'ETEEMTEER', 'ETEEMTEITE', 'ETEEMTEIN', 'ETEEMTEUE', 'ETEEMTEF', 'ETEEMTIETE', 'ETEEMTIEN', 'ETEEMTIAE', 'ETEEMTIR', 'ETEEMTSTE', 'ETEEMTSN', 'ETEEMTVE', 'ETEEMNEETE', 'ETEEMNEEN', 'ETEEMNEAE', 'ETEEMNER', 'ETEEMNITE', 'ETEEMNIN', 'ETEEMNUE', 'ETEEMNF', 'ETEEMDETE', 'ETEEMDEN', 'ETEEMDAE', 'ETEEMDR', 'ETEEMBTE', 'ETEEMBN', 'ETEEM=E', 'ETEEOEEETE', 'ETEEOEEEN', 'ETEEOEEAE', 'ETEEOEER', 'ETEEOEITE', 'ETEEOEIN', 'ETEEOEUE', 'ETEEOEF', 'ETEEOIETE', 'ETEEOIEN', 'ETEEOIAE', 'ETEEOIR', 'ETEEOSTE', 'ETEEOSN', 'ETEEOVE', 'ETEE8ETE', 'ETEE8EN', 'ETEE8AE', 'ETEE8R', 'ETEE:TE', 'ETEE:N', 'ETEATTEEETE', 'ETEATTEEEN', 'ETEATTEEAE', 'ETEATTEER', 'ETEATTEITE', 'ETEATTEIN', 'ETEATTEUE', 'ETEATTEF', 'ETEATTIETE', 'ETEATTIEN', 'ETEATTIAE', 'ETEATTIR', 'ETEATTSTE', 'ETEATTSN', 'ETEATTVE', 'ETEATNEETE', 'ETEATNEEN', 'ETEATNEAE', 'ETEATNER', 'ETEATNITE', 'ETEATNIN', 'ETEATNUE', 'ETEATNF', 'ETEATDETE', 'ETEATDEN', 'ETEATDAE', 'ETEATDR', 'ETEATBTE', 'ETEATBN', 'ETEAT=E', 'ETEAMEEETE', 'ETEAMEEEN', 'ETEAMEEAE', 'ETEAMEER', 'ETEAMEITE', 'ETEAMEIN', 'ETEAMEUE', 'ETEAMEF', 'ETEAMIETE', 'ETEAMIEN', 'ETEAMIAE', 'ETEAMIR', 'ETEAMSTE', 'ETEAMSN', 'ETEAMVE', 'ETEAGEETE', 'ETEAGEEN', 'ETEAGEAE', 'ETEAGER', 'ETEAGITE', 'ETEAGIN', 'ETEAGUE', 'ETEAGF', 'ETEAZETE', 'ETEAZEN', 'ETEAZAE', 'ETEAZR', 'ETEA7TE', 'ETEA7N', 'ETEWTEEETE', 'ETEWTEEEN', 'ETEWTEEAE', 'ETEWTEER', 'ETEWTEITE', 'ETEWTEIN', 'ETEWTEUE', 'ETEWTEF', 'ETEWTIETE', 'ETEWTIEN', 'ETEWTIAE', 'ETEWTIR', 'ETEWTSTE', 'ETEWTSN', 'ETEWTVE', 'ETEWNEETE', 'ETEWNEEN', 'ETEWNEAE', 'ETEWNER', 'ETEWNITE', 'ETEWNIN', 'ETEWNUE', 'ETEWNF', 'ETEWDETE', 'ETEWDEN', 'ETEWDAE', 'ETEWDR', 'ETEWBTE', 'ETEWBN', 'ETEW=E', 'ETEJEEETE', 'ETEJEEEN', 'ETEJEEAE', 'ETEJEER', 'ETEJEITE', 'ETEJEIN', 'ETEJEUE', 'ETEJEF', 'ETEJIETE', 'ETEJIEN', 'ETEJIAE', 'ETEJIR', 'ETEJSTE', 'ETEJSN', 'ETEJVE', 'ETITTTEEETE', 'ETITTTEEEN', 'ETITTTEEAE', 'ETITTTEER', 'ETITTTEITE', 'ETITTTEIN', 'ETITTTEUE', 'ETITTTEF', 'ETITTTIETE', 'ETITTTIEN', 'ETITTTIAE', 'ETITTTIR', 'ETITTTSTE', 'ETITTTSN', 'ETITTTVE', 'ETITTNEETE', 'ETITTNEEN', 'ETITTNEAE', 'ETITTNER', 'ETITTNITE', 'ETITTNIN', 'ETITTNUE', 'ETITTNF', 'ETITTDETE', 'ETITTDEN', 'ETITTDAE', 'ETITTDR', 'ETITTBTE', 'ETITTBN', 'ETITT=E', 'ETITMEEETE', 'ETITMEEEN', 'ETITMEEAE', 'ETITMEER', 'ETITMEITE', 'ETITMEIN', 'ETITMEUE', 'ETITMEF', 'ETITMIETE', 'ETITMIEN', 'ETITMIAE', 'ETITMIR', 'ETITMSTE', 'ETITMSN', 'ETITMVE', 'ETITGEETE', 'ETITGEEN', 'ETITGEAE', 'ETITGER', 'ETITGITE', 'ETITGIN', 'ETITGUE', 'ETITGF', 'ETITZETE', 'ETITZEN', 'ETITZAE', 'ETITZR', 'ETIT7TE', 'ETIT7N', 'ETIMTEEETE', 'ETIMTEEEN', 'ETIMTEEAE', 'ETIMTEER', 'ETIMTEITE', 'ETIMTEIN', 'ETIMTEUE', 'ETIMTEF', 'ETIMTIETE', 'ETIMTIEN', 'ETIMTIAE', 'ETIMTIR', 'ETIMTSTE', 'ETIMTSN', 'ETIMTVE', 'ETIMNEETE', 'ETIMNEEN', 'ETIMNEAE', 'ETIMNER', 'ETIMNITE', 'ETIMNIN', 'ETIMNUE', 'ETIMNF', 'ETIMDETE', 'ETIMDEN', 'ETIMDAE', 'ETIMDR', 'ETIMBTE', 'ETIMBN', 'ETIM=E', 'ETIOEEETE', 'ETIOEEEN', 'ETIOEEAE', 'ETIOEER', 'ETIOEITE', 'ETIOEIN', 'ETIOEUE', 'ETIOEF', 'ETIOIETE', 'ETIOIEN', 'ETIOIAE', 'ETIOIR', 'ETIOSTE', 'ETIOSN', 'ETIOVE', 'ETI8ETE', 'ETI8EN', 'ETI8AE', 'ETI8R', 'ETI:TE', 'ETI:N', 'ETUTTEEETE', 'ETUTTEEEN', 'ETUTTEEAE', 'ETUTTEER', 'ETUTTEITE', 'ETUTTEIN', 'ETUTTEUE', 'ETUTTEF', 'ETUTTIETE', 'ETUTTIEN', 'ETUTTIAE', 'ETUTTIR', 'ETUTTSTE', 'ETUTTSN', 'ETUTTVE', 'ETUTNEETE', 'ETUTNEEN', 'ETUTNEAE', 'ETUTNER', 'ETUTNITE', 'ETUTNIN', 'ETUTNUE', 'ETUTNF', 'ETUTDETE', 'ETUTDEN', 'ETUTDAE', 'ETUTDR', 'ETUTBTE', 'ETUTBN', 'ETUT=E', 'ETUMEEETE', 'ETUMEEEN', 'ETUMEEAE', 'ETUMEER', 'ETUMEITE', 'ETUMEIN', 'ETUMEUE', 'ETUMEF', 'ETUMIETE', 'ETUMIEN', 'ETUMIAE', 'ETUMIR', 'ETUMSTE', 'ETUMSN', 'ETUMVE', 'ETUGEETE', 'ETUGEEN', 'ETUGEAE', 'ETUGER', 'ETUGITE', 'ETUGIN', 'ETUGUE', 'ETUGF', 'ETUZETE', 'ETUZEN', 'ETUZAE', 'ETUZR', 'ETU7TE', 'ETU7N', 'ET2EEETE', 'ET2EEEN', 'ET2EEAE', 'ET2EER', 'ET2EITE', 'ET2EIN', 'ET2EUE', 'ET2EF', 'ET2IETE', 'ET2IEN', 'ET2IAE', 'ET2IR', 'ET2STE', 'ET2SN', 'ET2VE', 'ENETTTEEETE', 'ENETTTEEEN', 'ENETTTEEAE', 'ENETTTEER', 'ENETTTEITE', 'ENETTTEIN', 'ENETTTEUE', 'ENETTTEF', 'ENETTTIETE', 'ENETTTIEN', 'ENETTTIAE', 'ENETTTIR', 'ENETTTSTE', 'ENETTTSN', 'ENETTTVE', 'ENETTNEETE', 'ENETTNEEN', 'ENETTNEAE', 'ENETTNER', 'ENETTNITE', 'ENETTNIN', 'ENETTNUE', 'ENETTNF', 'ENETTDETE', 'ENETTDEN', 'ENETTDAE', 'ENETTDR', 'ENETTBTE', 'ENETTBN', 'ENETT=E', 'ENETMEEETE', 'ENETMEEEN', 'ENETMEEAE', 'ENETMEER', 'ENETMEITE', 'ENETMEIN', 'ENETMEUE', 'ENETMEF', 'ENETMIETE', 'ENETMIEN', 'ENETMIAE', 'ENETMIR', 'ENETMSTE', 'ENETMSN', 'ENETMVE', 'ENETGEETE', 'ENETGEEN', 'ENETGEAE', 'ENETGER', 'ENETGITE', 'ENETGIN', 'ENETGUE', 'ENETGF', 'ENETZETE', 'ENETZEN', 'ENETZAE', 'ENETZR', 'ENET7TE', 'ENET7N', 'ENEMTEEETE', 'ENEMTEEEN', 'ENEMTEEAE', 'ENEMTEER', 'ENEMTEITE', 'ENEMTEIN', 'ENEMTEUE', 'ENEMTEF', 'ENEMTIETE', 'ENEMTIEN', 'ENEMTIAE', 'ENEMTIR', 'ENEMTSTE', 'ENEMTSN', 'ENEMTVE', 'ENEMNEETE', 'ENEMNEEN', 'ENEMNEAE', 'ENEMNER', 'ENEMNITE', 'ENEMNIN', 'ENEMNUE', 'ENEMNF', 'ENEMDETE', 'ENEMDEN', 'ENEMDAE', 'ENEMDR', 'ENEMBTE', 'ENEMBN', 'ENEM=E', 'ENEOEEETE', 'ENEOEEEN', 'ENEOEEAE', 'ENEOEER', 'ENEOEITE', 'ENEOEIN', 'ENEOEUE', 'ENEOEF', 'ENEOIETE', 'ENEOIEN', 'ENEOIAE', 'ENEOIR', 'ENEOSTE', 'ENEOSN', 'ENEOVE', 'ENE8ETE', 'ENE8EN', 'ENE8AE', 'ENE8R', 'ENE:TE', 'ENE:N', 'ENATTEEETE', 'ENATTEEEN', 'ENATTEEAE', 'ENATTEER', 'ENATTEITE', 'ENATTEIN', 'ENATTEUE', 'ENATTEF', 'ENATTIETE', 'ENATTIEN', 'ENATTIAE', 'ENATTIR', 'ENATTSTE', 'ENATTSN', 'ENATTVE', 'ENATNEETE', 'ENATNEEN', 'ENATNEAE', 'ENATNER', 'ENATNITE', 'ENATNIN', 'ENATNUE', 'ENATNF', 'ENATDETE', 'ENATDEN', 'ENATDAE', 'ENATDR', 'ENATBTE', 'ENATBN', 'ENAT=E', 'ENAMEEETE', 'ENAMEEEN', 'ENAMEEAE', 'ENAMEER', 'ENAMEITE', 'ENAMEIN', 'ENAMEUE', 'ENAMEF', 'ENAMIETE', 'ENAMIEN', 'ENAMIAE', 'ENAMIR', 'ENAMSTE', 'ENAMSN', 'ENAMVE', 'ENAGEETE', 'ENAGEEN', 'ENAGEAE', 'ENAGER', 'ENAGITE', 'ENAGIN', 'ENAGUE', 'ENAGF', 'ENAZETE', 'ENAZEN', 'ENAZAE', 'ENAZR', 'ENA7TE', 'ENA7N', 'ENWTEEETE', 'ENWTEEEN', 'ENWTEEAE', 'ENWTEER', 'ENWTEITE', 'ENWTEIN', 'ENWTEUE', 'ENWTEF', 'ENWTIETE', 'ENWTIEN', 'ENWTIAE', 'ENWTIR', 'ENWTSTE', 'ENWTSN', 'ENWTVE', 'ENWNEETE', 'ENWNEEN', 'ENWNEAE', 'ENWNER', 'ENWNITE', 'ENWNIN', 'ENWNUE', 'ENWNF', 'ENWDETE', 'ENWDEN', 'ENWDAE', 'ENWDR', 'ENWBTE', 'ENWBN', 'ENW=E', 'ENJEEETE', 'ENJEEEN', 'ENJEEAE', 'ENJEER', 'ENJEITE', 'ENJEIN', 'ENJEUE', 'ENJEF', 'ENJIETE', 'ENJIEN', 'ENJIAE', 'ENJIR', 'ENJSTE', 'ENJSN', 'ENJVE', 'EDTTTEEETE', 'EDTTTEEEN', 'EDTTTEEAE', 'EDTTTEER', 'EDTTTEITE', 'EDTTTEIN', 'EDTTTEUE', 'EDTTTEF', 'EDTTTIETE', 'EDTTTIEN', 'EDTTTIAE', 'EDTTTIR', 'EDTTTSTE', 'EDTTTSN', 'EDTTTVE', 'EDTTNEETE', 'EDTTNEEN', 'EDTTNEAE', 'EDTTNER', 'EDTTNITE', 'EDTTNIN', 'EDTTNUE', 'EDTTNF', 'EDTTDETE', 'EDTTDEN', 'EDTTDAE', 'EDTTDR', 'EDTTBTE', 'EDTTBN', 'EDTT=E', 'EDTMEEETE', 'EDTMEEEN', 'EDTMEEAE', 'EDTMEER', 'EDTMEITE', 'EDTMEIN', 'EDTMEUE', 'EDTMEF', 'EDTMIETE', 'EDTMIEN', 'EDTMIAE', 'EDTMIR', 'EDTMSTE', 'EDTMSN', 'EDTMVE', 'EDTGEETE', 'EDTGEEN', 'EDTGEAE', 'EDTGER', 'EDTGITE', 'EDTGIN', 'EDTGUE', 'EDTGF', 'EDTZETE', 'EDTZEN', 'EDTZAE', 'EDTZR', 'EDT7TE', 'EDT7N', 'EDMTEEETE', 'EDMTEEEN', 'EDMTEEAE', 'EDMTEER', 'EDMTEITE', 'EDMTEIN', 'EDMTEUE', 'EDMTEF', 'EDMTIETE', 'EDMTIEN', 'EDMTIAE', 'EDMTIR', 'EDMTSTE', 'EDMTSN', 'EDMTVE', 'EDMNEETE', 'EDMNEEN', 'EDMNEAE', 'EDMNER', 'EDMNITE', 'EDMNIN', 'EDMNUE', 'EDMNF', 'EDMDETE', 'EDMDEN', 'EDMDAE', 'EDMDR', 'EDMBTE', 'EDMBN', 'EDM=E', 'EDOEEETE', 'EDOEEEN', 'EDOEEAE', 'EDOEER', 'EDOEITE', 'EDOEIN', 'EDOEUE', 'EDOEF', 'EDOIETE', 'EDOIEN', 'EDOIAE', 'EDOIR', 'EDOSTE', 'EDOSN', 'EDOVE', 'ED8ETE', 'ED8EN', 'ED8AE', 'ED8R', 'ED:TE', 'ED:N', 'EXTTEEETE', 'EXTTEEEN', 'EXTTEEAE', 'EXTTEER', 'EXTTEITE', 'EXTTEIN', 'EXTTEUE', 'EXTTEF', 'EXTTIETE', 'EXTTIEN', 'EXTTIAE', 'EXTTIR', 'EXTTSTE', 'EXTTSN', 'EXTTVE', 'EXTNEETE', 'EXTNEEN', 'EXTNEAE', 'EXTNER', 'EXTNITE', 'EXTNIN', 'EXTNUE', 'EXTNF', 'EXTDETE', 'EXTDEN', 'EXTDAE', 'EXTDR', 'EXTBTE', 'EXTBN', 'EXT=E', 'EXMEEETE', 'EXMEEEN', 'EXMEEAE', 'EXMEER', 'EXMEITE', 'EXMEIN', 'EXMEUE', 'EXMEF', 'EXMIETE', 'EXMIEN', 'EXMIAE', 'EXMIR', 'EXMSTE', 'EXMSN', 'EXMVE', 'EXGEETE', 'EXGEEN', 'EXGEAE', 'EXGER', 'EXGITE', 'EXGIN', 'EXGUE', 'EXGF', 'EXZETE', 'EXZEN', 'EXZAE', 'EXZR', 'EX7TE', 'EX7N', 'AEETTTEEETE', 'AEETTTEEEN', 'AEETTTEEAE', 'AEETTTEER', 'AEETTTEITE', 'AEETTTEIN', 'AEETTTEUE', 'AEETTTEF', 'AEETTTIETE', 'AEETTTIEN', 'AEETTTIAE', 'AEETTTIR', 'AEETTTSTE', 'AEETTTSN', 'AEETTTVE', 'AEETTNEETE', 'AEETTNEEN', 'AEETTNEAE', 'AEETTNER', 'AEETTNITE', 'AEETTNIN', 'AEETTNUE', 'AEETTNF', 'AEETTDETE', 'AEETTDEN', 'AEETTDAE', 'AEETTDR', 'AEETTBTE', 'AEETTBN', 'AEETT=E', 'AEETMEEETE', 'AEETMEEEN', 'AEETMEEAE', 'AEETMEER', 'AEETMEITE', 'AEETMEIN', 'AEETMEUE', 'AEETMEF', 'AEETMIETE', 'AEETMIEN', 'AEETMIAE', 'AEETMIR', 'AEETMSTE', 'AEETMSN', 'AEETMVE', 'AEETGEETE', 'AEETGEEN', 'AEETGEAE', 'AEETGER', 'AEETGITE', 'AEETGIN', 'AEETGUE', 'AEETGF', 'AEETZETE', 'AEETZEN', 'AEETZAE', 'AEETZR', 'AEET7TE', 'AEET7N', 'AEEMTEEETE', 'AEEMTEEEN', 'AEEMTEEAE', 'AEEMTEER', 'AEEMTEITE', 'AEEMTEIN', 'AEEMTEUE', 'AEEMTEF', 'AEEMTIETE', 'AEEMTIEN', 'AEEMTIAE', 'AEEMTIR', 'AEEMTSTE', 'AEEMTSN', 'AEEMTVE', 'AEEMNEETE', 'AEEMNEEN', 'AEEMNEAE', 'AEEMNER', 'AEEMNITE', 'AEEMNIN', 'AEEMNUE', 'AEEMNF', 'AEEMDETE', 'AEEMDEN', 'AEEMDAE', 'AEEMDR', 'AEEMBTE', 'AEEMBN', 'AEEM=E', 'AEEOEEETE', 'AEEOEEEN', 'AEEOEEAE', 'AEEOEER', 'AEEOEITE', 'AEEOEIN', 'AEEOEUE', 'AEEOEF', 'AEEOIETE', 'AEEOIEN', 'AEEOIAE', 'AEEOIR', 'AEEOSTE', 'AEEOSN', 'AEEOVE', 'AEE8ETE', 'AEE8EN', 'AEE8AE', 'AEE8R', 'AEE:TE', 'AEE:N', 'AEATTEEETE', 'AEATTEEEN', 'AEATTEEAE', 'AEATTEER', 'AEATTEITE', 'AEATTEIN', 'AEATTEUE', 'AEATTEF', 'AEATTIETE', 'AEATTIEN', 'AEATTIAE', 'AEATTIR', 'AEATTSTE', 'AEATTSN', 'AEATTVE', 'AEATNEETE', 'AEATNEEN', 'AEATNEAE', 'AEATNER', 'AEATNITE', 'AEATNIN', 'AEATNUE', 'AEATNF', 'AEATDETE', 'AEATDEN', 'AEATDAE', 'AEATDR', 'AEATBTE', 'AEATBN', 'AEAT=E', 'AEAMEEETE', 'AEAMEEEN', 'AEAMEEAE', 'AEAMEER', 'AEAMEITE', 'AEAMEIN', 'AEAMEUE', 'AEAMEF', 'AEAMIETE', 'AEAMIEN', 'AEAMIAE', 'AEAMIR', 'AEAMSTE', 'AEAMSN', 'AEAMVE', 'AEAGEETE', 'AEAGEEN', 'AEAGEAE', 'AEAGER', 'AEAGITE', 'AEAGIN', 'AEAGUE', 'AEAGF', 'AEAZETE', 'AEAZEN', 'AEAZAE', 'AEAZR', 'AEA7TE', 'AEA7N', 'AEWTEEETE', 'AEWTEEEN', 'AEWTEEAE', 'AEWTEER', 'AEWTEITE', 'AEWTEIN', 'AEWTEUE', 'AEWTEF', 'AEWTIETE', 'AEWTIEN', 'AEWTIAE', 'AEWTIR', 'AEWTSTE', 'AEWTSN', 'AEWTVE', 'AEWNEETE', 'AEWNEEN', 'AEWNEAE', 'AEWNER', 'AEWNITE', 'AEWNIN', 'AEWNUE', 'AEWNF', 'AEWDETE', 'AEWDEN', 'AEWDAE', 'AEWDR', 'AEWBTE', 'AEWBN', 'AEW=E', 'AEJEEETE', 'AEJEEEN', 'AEJEEAE', 'AEJEER', 'AEJEITE', 'AEJEIN', 'AEJEUE', 'AEJEF', 'AEJIETE', 'AEJIEN', 'AEJIAE', 'AEJIR', 'AEJSTE', 'AEJSN', 'AEJVE', 'AITTTEEETE', 'AITTTEEEN', 'AITTTEEAE', 'AITTTEER', 'AITTTEITE', 'AITTTEIN', 'AITTTEUE', 'AITTTEF', 'AITTTIETE', 'AITTTIEN', 'AITTTIAE', 'AITTTIR', 'AITTTSTE', 'AITTTSN', 'AITTTVE', 'AITTNEETE', 'AITTNEEN', 'AITTNEAE', 'AITTNER', 'AITTNITE', 'AITTNIN', 'AITTNUE', 'AITTNF', 'AITTDETE', 'AITTDEN', 'AITTDAE', 'AITTDR', 'AITTBTE', 'AITTBN', 'AITT=E', 'AITMEEETE', 'AITMEEEN', 'AITMEEAE', 'AITMEER', 'AITMEITE', 'AITMEIN', 'AITMEUE', 'AITMEF', 'AITMIETE', 'AITMIEN', 'AITMIAE', 'AITMIR', 'AITMSTE', 'AITMSN', 'AITMVE', 'AITGEETE', 'AITGEEN', 'AITGEAE', 'AITGER', 'AITGITE', 'AITGIN', 'AITGUE', 'AITGF', 'AITZETE', 'AITZEN', 'AITZAE', 'AITZR', 'AIT7TE', 'AIT7N', 'AIMTEEETE', 'AIMTEEEN', 'AIMTEEAE', 'AIMTEER', 'AIMTEITE', 'AIMTEIN', 'AIMTEUE', 'AIMTEF', 'AIMTIETE', 'AIMTIEN', 'AIMTIAE', 'AIMTIR', 'AIMTSTE', 'AIMTSN', 'AIMTVE', 'AIMNEETE', 'AIMNEEN', 'AIMNEAE', 'AIMNER', 'AIMNITE', 'AIMNIN', 'AIMNUE', 'AIMNF', 'AIMDETE', 'AIMDEN', 'AIMDAE', 'AIMDR', 'AIMBTE', 'AIMBN', 'AIM=E', 'AIOEEETE', 'AIOEEEN', 'AIOEEAE', 'AIOEER', 'AIOEITE', 'AIOEIN', 'AIOEUE', 'AIOEF', 'AIOIETE', 'AIOIEN', 'AIOIAE', 'AIOIR', 'AIOSTE', 'AIOSN', 'AIOVE', 'AI8ETE', 'AI8EN', 'AI8AE', 'AI8R', 'AI:TE', 'AI:N', 'AUTTEEETE', 'AUTTEEEN', 'AUTTEEAE', 'AUTTEER', 'AUTTEITE', 'AUTTEIN', 'AUTTEUE', 'AUTTEF', 'AUTTIETE', 'AUTTIEN', 'AUTTIAE', 'AUTTIR', 'AUTTSTE', 'AUTTSN', 'AUTTVE', 'AUTNEETE', 'AUTNEEN', 'AUTNEAE', 'AUTNER', 'AUTNITE', 'AUTNIN', 'AUTNUE', 'AUTNF', 'AUTDETE', 'AUTDEN', 'AUTDAE', 'AUTDR', 'AUTBTE', 'AUTBN', 'AUT=E', 'AUMEEETE', 'AUMEEEN', 'AUMEEAE', 'AUMEER', 'AUMEITE', 'AUMEIN', 'AUMEUE', 'AUMEF', 'AUMIETE', 'AUMIEN', 'AUMIAE', 'AUMIR', 'AUMSTE', 'AUMSN', 'AUMVE', 'AUGEETE', 'AUGEEN', 'AUGEAE', 'AUGER', 'AUGITE', 'AUGIN', 'AUGUE', 'AUGF', 'AUZETE', 'AUZEN', 'AUZAE', 'AUZR', 'AU7TE', 'AU7N', 'A2EEETE', 'A2EEEN', 'A2EEAE', 'A2EER', 'A2EITE', 'A2EIN', 'A2EUE', 'A2EF', 'A2IETE', 'A2IEN', 'A2IAE', 'A2IR', 'A2STE', 'A2SN', 'A2VE', 'RETTTEEETE', 'RETTTEEEN', 'RETTTEEAE', 'RETTTEER', 'RETTTEITE', 'RETTTEIN', 'RETTTEUE', 'RETTTEF', 'RETTTIETE', 'RETTTIEN', 'RETTTIAE', 'RETTTIR', 'RETTTSTE', 'RETTTSN', 'RETTTVE', 'RETTNEETE', 'RETTNEEN', 'RETTNEAE', 'RETTNER', 'RETTNITE', 'RETTNIN', 'RETTNUE', 'RETTNF', 'RETTDETE', 'RETTDEN', 'RETTDAE', 'RETTDR', 'RETTBTE', 'RETTBN', 'RETT=E', 'RETMEEETE', 'RETMEEEN', 'RETMEEAE', 'RETMEER', 'RETMEITE', 'RETMEIN', 'RETMEUE', 'RETMEF', 'RETMIETE', 'RETMIEN', 'RETMIAE', 'RETMIR', 'RETMSTE', 'RETMSN', 'RETMVE', 'RETGEETE', 'RETGEEN', 'RETGEAE', 'RETGER', 'RETGITE', 'RETGIN', 'RETGUE', 'RETGF', 'RETZETE', 'RETZEN', 'RETZAE', 'RETZR', 'RET7TE', 'RET7N', 'REMTEEETE', 'REMTEEEN', 'REMTEEAE', 'REMTEER', 'REMTEITE', 'REMTEIN', 'REMTEUE', 'REMTEF', 'REMTIETE', 'REMTIEN', 'REMTIAE', 'REMTIR', 'REMTSTE', 'REMTSN', 'REMTVE', 'REMNEETE', 'REMNEEN', 'REMNEAE', 'REMNER', 'REMNITE', 'REMNIN', 'REMNUE', 'REMNF', 'REMDETE', 'REMDEN', 'REMDAE', 'REMDR', 'REMBTE', 'REMBN', 'REM=E', 'REOEEETE', 'REOEEEN', 'REOEEAE', 'REOEER', 'REOEITE', 'REOEIN', 'REOEUE', 'REOEF', 'REOIETE', 'REOIEN', 'REOIAE', 'REOIR', 'REOSTE', 'REOSN', 'REOVE', 'RE8ETE', 'RE8EN', 'RE8AE', 'RE8R', 'RE:TE', 'RE:N', 'RATTEEETE', 'RATTEEEN', 'RATTEEAE', 'RATTEER', 'RATTEITE', 'RATTEIN', 'RATTEUE', 'RATTEF', 'RATTIETE', 'RATTIEN', 'RATTIAE', 'RATTIR', 'RATTSTE', 'RATTSN', 'RATTVE', 'RATNEETE', 'RATNEEN', 'RATNEAE', 'RATNER', 'RATNITE', 'RATNIN', 'RATNUE', 'RATNF', 'RATDETE', 'RATDEN', 'RATDAE', 'RATDR', 'RATBTE', 'RATBN', 'RAT=E', 'RAMEEETE', 'RAMEEEN', 'RAMEEAE', 'RAMEER', 'RAMEITE', 'RAMEIN', 'RAMEUE', 'RAMEF', 'RAMIETE', 'RAMIEN', 'RAMIAE', 'RAMIR', 'RAMSTE', 'RAMSN', 'RAMVE', 'RAGEETE', 'RAGEEN', 'RAGEAE', 'RAGER', 'RAGITE', 'RAGIN', 'RAGUE', 'RAGF', 'RAZETE', 'RAZEN', 'RAZAE', 'RAZR', 'RA7TE', 'RA7N', 'RWTEEETE', 'RWTEEEN', 'RWTEEAE', 'RWTEER', 'RWTEITE', 'RWTEIN', 'RWTEUE', 'RWTEF', 'RWTIETE', 'RWTIEN', 'RWTIAE', 'RWTIR', 'RWTSTE', 'RWTSN', 'RWTVE', 'RWNEETE', 'RWNEEN', 'RWNEAE', 'RWNER', 'RWNITE', 'RWNIN', 'RWNUE', 'RWNF', 'RWDETE', 'RWDEN', 'RWDAE', 'RWDR', 'RWBTE', 'RWBN', 'RW=E', 'RJEEETE', 'RJEEEN', 'RJEEAE', 'RJEER', 'RJEITE', 'RJEIN', 'RJEUE', 'RJEF', 'RJIETE', 'RJIEN', 'RJIAE', 'RJIR', 'RJSTE', 'RJSN', 'RJVE', 'LTTTEEETE', 'LTTTEEEN', 'LTTTEEAE', 'LTTTEER', 'LTTTEITE', 'LTTTEIN', 'LTTTEUE', 'LTTTEF', 'LTTTIETE', 'LTTTIEN', 'LTTTIAE', 'LTTTIR', 'LTTTSTE', 'LTTTSN', 'LTTTVE', 'LTTNEETE', 'LTTNEEN', 'LTTNEAE', 'LTTNER', 'LTTNITE', 'LTTNIN', 'LTTNUE', 'LTTNF', 'LTTDETE', 'LTTDEN', 'LTTDAE', 'LTTDR', 'LTTBTE', 'LTTBN', 'LTT=E', 'LTMEEETE', 'LTMEEEN', 'LTMEEAE', 'LTMEER', 'LTMEITE', 'LTMEIN', 'LTMEUE', 'LTMEF', 'LTMIETE', 'LTMIEN', 'LTMIAE', 'LTMIR', 'LTMSTE', 'LTMSN', 'LTMVE', 'LTGEETE', 'LTGEEN', 'LTGEAE', 'LTGER', 'LTGITE', 'LTGIN', 'LTGUE', 'LTGF', 'LTZETE', 'LTZEN', 'LTZAE', 'LTZR', 'LT7TE', 'LT7N', 'LMTEEETE', 'LMTEEEN', 'LMTEEAE', 'LMTEER', 'LMTEITE', 'LMTEIN', 'LMTEUE', 'LMTEF', 'LMTIETE', 'LMTIEN', 'LMTIAE', 'LMTIR', 'LMTSTE', 'LMTSN', 'LMTVE', 'LMNEETE', 'LMNEEN', 'LMNEAE', 'LMNER', 'LMNITE', 'LMNIN', 'LMNUE', 'LMNF', 'LMDETE', 'LMDEN', 'LMDAE', 'LMDR', 'LMBTE', 'LMBN', 'LM=E', 'LOEEETE', 'LOEEEN', 'LOEEAE', 'LOEER', 'LOEITE', 'LOEIN', 'LOEUE', 'LOEF', 'LOIETE', 'LOIEN', 'LOIAE', 'LOIR', 'LOSTE', 'LOSN', 'LOVE', 'L8ETE', 'L8EN', 'L8AE', 'L8R', 'L:TE', 'L:N']\n"
     ]
    }
   ],
   "source": [
    "print(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1503"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
